package br.com.vpsa.previdordevendas.controller;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import br.com.vpsa.previdordevendas.model.entity.EntidadePadrao;
import br.com.vpsa.previdordevendas.model.pojo.EntidadePojo;
import br.com.vpsa.previdordevendas.model.service.EntidadeService;
import br.com.vpsa.previdordevendas.model.util.BaseUtil;

@Controller
@RequestMapping("/entidadePadrao")
public class EntidadePadraoController {

	@Autowired
	private EntidadeService entidadeService;
	
	@RequestMapping(method = RequestMethod.GET)
    public String get(Map<String, Object> map) 
	{
		EntidadePadrao entidadePadrao = entidadeService.getEntidadePadrao(BaseUtil.getBase());
		
		if( entidadePadrao == null ){
			entidadePadrao = new EntidadePadrao();
			entidadePadrao.setIdEntidadePadrao(-1L);
		}
		
		return get(entidadePadrao, map);
	}	
	
	@RequestMapping(method = RequestMethod.POST)
	public String salvar( @ModelAttribute("entidadePadrao") EntidadePadrao entidadePadrao, Map<String, Object> map )
	{
		if( entidadePadrao.getIdEntidadePadrao() == null || entidadePadrao.getIdEntidadePadrao() == -1L ){
			entidadePadrao.setIdEntidadePadrao(null);
		}

		entidadePadrao.setBase(BaseUtil.getBase());
		entidadePadrao = entidadeService.salvarEntidadePadrao(entidadePadrao);
			
		map.put("mensagemSucesso", "Entidade Padrão salva com sucesso.");
		
		return get(entidadePadrao,map);
	}
	
    public String get(EntidadePadrao entidadePadrao,  Map<String, Object> map) 
	{
		List<EntidadePojo> entidades = entidadeService.listarTodas();
		entidades.add( 0 , new EntidadePojo(-1L, "Selecione a entidade") );
					
		map.put("entidadePadrao", entidadePadrao );
		map.put("entidades", entidades); 
		
		return "entidadePadrao";
	}

}
